<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_vencimientos.php");
require_once("../Datos/Selectores/Sel_Cobranzas_No_Guion.php");
require_once("../Datos/Selectores/Sel_Ventas_No_Guion.php");

class Sel_Cobranzas extends Selector{

	function Sel_Cobranzas(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Cobranzas";
		$this->estTablaBase(new Tbl_ec_vencimientos($conexion, ''));
		
		$relacionada = new SubConsulta(new Sel_Cobranzas_No_Guion($conexion), 'Venc');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('venc_id'), $this->obtCampoRelacionado('Venc', 'Codigo'), '=');
		
		$relacionada = new SubConsulta(new Sel_Ventas($conexion), 'Ventas');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('venc_venta'), $this->obtCampoRelacionado('Ventas', 'ven_id'), '=');
					
		$campo = $this->tablaBase->obtCampo('venc_id');
		$campo->estAlias("Codigo");
		$this->agregarCampoVisible($campo);			
		
		$campo = $this->obtCampoRelacionado('Ventas', 'ven_id');
		$campo->estEsBase(1);
		$campo->estAlias('Venta');
		$campo->estEsReadOnly(1);
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Localidad');
		$campo->estAlias("Localidad");
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Cliente');
		$campo->estEsBase(1);
		$campo->estAlias('Cliente');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Fecha_Venta');
		$campo->estAlias('Fecha Venta');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Articulo');
		$campo->estEsBase(1);
		$campo->estAlias('Articulo');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Monto');
		$campo->estEsBase(1);
		$campo->estAlias('Monto');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Ventas', 'Cuotas');
		$campo->estEsBase(1);
		$campo->estAlias('Cuotas');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->obtTabla('Ventas');
		$funcion = new Funcion('Valor $', '', $tabla);
		$funcion->agregarExpresion('FORMAT(Ventas.Monto / Ventas.Cuotas, 2)');
		$funcion->estEsReadOnly(1);
		$funcion->estEsBase(1);
		$this->agregarCampoVisible($funcion);
		
		$campo = $this->obtCampoRelacionado('Venc', 'Adeudadas');
		$campo->estEsBase(1);
		$campo->estAlias('Adeudadas');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->obtTabla('Venc');
		$deuda = new Funcion('Deuda', 'FORMAT', $tabla);
		$deuda->agregarExpresion('(Ventas.Monto / Ventas.Cuotas * Adeudadas)');
		$deuda->agregarExpresion('2');
		$deuda->estEsReadOnly(1);
		$deuda->estEsBase(1);
		$this->agregarCampoVisible($deuda);
		
		$campo = $this->obtCampoRelacionado('Venc', 'Prox_Vto');
		$campo->estEsBase(1);
		$campo->estAlias('Vencimiento');
		$campo->estEsReadOnly(1);
		$campo->estEsOrden("ASC");
		$this->agregarCampoVisible($campo);
		
		$campo = $this->tablaBase->obtCampo('venc_fechapago');
		$campo->estAlias('Fecha de Pago');
		$campo->EstOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$this->estCondicion("Ventas.id_Cobrador = " . $_SESSION['login']['log_id']);


		$this->txtConsulta = $this->GenerarConsulta();
 }
 
 function &obtClavesBase(){
 		$campo = $this->obtCampoRelacionado('Ventas', 'ven_id');
		$campo->estEsBase(1);
		
		$campo->estAlias('ven_id');
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		
		$vuelve["ven_id"] = $campo;
		
		return $vuelve;
	}
	
	function Ejecutar($post){
		$this->tablaBase->set_venc_id($post['0']);
		parent::Ejecutar($post);
	}
 
}
?>
